package com.ruoyi.saas.domain;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 企业对象 c_tenant
 *
 * @author ruoyi
 * @date 2021-11-05
 */
public class CTenant extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    private Long id;

    /**
     * 企业编码
     */
    @Excel(name = "企业编码")
    private String code;

    /**
     * 企业名称
     */
    @Excel(name = "企业名称")
    private String name;

    /**
     * 类型
     * #{CREATE:创建;REGISTER:注册}
     */
    @Excel(name = "类型 #{CREATE:创建;REGISTER:注册}")
    private String type;

    /**
     * 链接类型
     * #TenantConnectTypeEnum{LOCAL:本地;REMOTE:远程}
     */
    @Excel(name = "链接类型 #TenantConnectTypeEnum{LOCAL:本地;REMOTE:远程}")
    private String connectType;

    /**
     * 状态
     * #{NORMAL:正常;WAIT_INIT:待初始化;FORBIDDEN:禁用;WAITING:待审核;REFUSE:拒绝;DELETE:已删除}
     */
    @Excel(name = "状态 #{NORMAL:正常;WAIT_INIT:待初始化;FORBIDDEN:禁用;WAITING:待审核;REFUSE:拒绝;DELETE:已删除}")
    private String status;

    /**
     * 内置
     */
    @Excel(name = "内置")
    private Integer readonly;

    /**
     * 责任人
     */
    @Excel(name = "责任人")
    private String duty;

    /**
     * 有效期
     * 为空表示永久
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "有效期 为空表示永久", width = 30, dateFormat = "yyyy-MM-dd")
    private Date expirationTime;

    /**
     * logo地址
     */
    @Excel(name = "logo地址")
    private String logo;

    /**
     * 企业简介
     */
    @Excel(name = "企业简介")
    private String describe;

    /**
     * 创建人
     */
    @Excel(name = "创建人")
    private Long createdBy;

    /**
     * 修改人
     */
    @Excel(name = "修改人")
    private Long updatedBy;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getCode() {
        return code;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getType() {
        return type;
    }

    public void setConnectType(String connectType) {
        this.connectType = connectType;
    }

    public String getConnectType() {
        return connectType;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getStatus() {
        return status;
    }

    public void setReadonly(Integer readonly) {
        this.readonly = readonly;
    }

    public Integer getReadonly() {
        return readonly;
    }

    public void setDuty(String duty) {
        this.duty = duty;
    }

    public String getDuty() {
        return duty;
    }

    public void setExpirationTime(Date expirationTime) {
        this.expirationTime = expirationTime;
    }

    public Date getExpirationTime() {
        return expirationTime;
    }

    public void setLogo(String logo) {
        this.logo = logo;
    }

    public String getLogo() {
        return logo;
    }

    public void setDescribe(String describe) {
        this.describe = describe;
    }

    public String getDescribe() {
        return describe;
    }

    public void setCreatedBy(Long createdBy) {
        this.createdBy = createdBy;
    }

    public Long getCreatedBy() {
        return createdBy;
    }

    public void setUpdatedBy(Long updatedBy) {
        this.updatedBy = updatedBy;
    }

    public Long getUpdatedBy() {
        return updatedBy;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("code", getCode())
                .append("name", getName())
                .append("type", getType())
                .append("connectType", getConnectType())
                .append("status", getStatus())
                .append("readonly", getReadonly())
                .append("duty", getDuty())
                .append("expirationTime", getExpirationTime())
                .append("logo", getLogo())
                .append("describe", getDescribe())
                .append("createTime", getCreateTime())
                .append("createdBy", getCreatedBy())
                .append("updateTime", getUpdateTime())
                .append("updatedBy", getUpdatedBy())
                .toString();
    }
}
